#include<iostream>
#include<unordered_map>
using namespace std;
const int N=110,M=1e9+7;
typedef long long LL;

int main(){
    int n;
    cin>>n;
    unordered_map<int,int> prim;
    while(n--){
        long long a;
        cin>>a;
        for(int i=2;i<=a/i;i++){
            while(a%i==0){
                prim[i]++;
                a/=i;
            }
        }
        if(a>1)prim[a]++;
    }
    
    long long ans=1;
    for(auto it:prim){
        ans=(LL)ans*(it.second+1)%M;
    }
    cout<<ans%M;
    
    return 0;
}
